iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
自我挑戰組

Udemy課程上完你也可以開始Codewars 30天系列 第 13

[Day13] Codewars >>> Scramblies (Python)

  • 分享至 

  • xImage
  •  

題目(5kyu):

Complete the function scramble(str1, str2) that returns true if a portion of str1 。>characters can be rearranged to match str2, otherwise returns false.

Notes:
Only lower case letters will be used (a-z). No punctuation or digits will be included.
Performance needs to be considered.

Examples

scramble('rkqodlw', 'world') ==> True
scramble('cedewaraaossoqqyt', 'codewars') ==> True
scramble('katas', 'steak') ==> False

解題思路

題目理解:設計一函數檢驗字串一經過重新排列組合後是否可以拼出字串二,並返還布林值。

每項字串二有的字元種類,字串一必須擁有至少與各種類相同數量的字元,如此才能重新排列出字串二。
可利用count()計算數量判斷是否符合條件。

def scramble(s1, s2):
    """檢驗s1是否可重新排列為s2"""
    #character為所有s2所具有的字元種類
    for character in set(s2): 
        #利用count()計算character在兩字串中的數量
        if s1.count(character) < s2.count(character):
            #若有檢驗到任一character的數量在s1中少於s2,則失敗
            return False
    return True

上一篇
[Day12] Codewars >>> Gap in Primes (Python)
下一篇
[Day14] Codewars >>> Not very secure (Python)
系列文
Udemy課程上完你也可以開始Codewars 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言